package com.apex.plugin;

import com.typesafe.config.Config;

import java.io.Serializable;

/**
 *  所有模块的父类借口,主要负责协调各个模块之间通性,所有模块必须是该借口的子类
 * @param <T>
 */
public interface BasePlugin<T> extends Serializable {
    /**
     * 插件执行环境准备
     * @param plugin 执行环境
     */
    void prepare(T plugin);

    /**
     * 外部配置文件管理
     * @return config
     */
    Config getConfig();

    /**
     * 配置配置环境管理环境
     * @param config config
     */
    void setConfig(Config config);
}
